Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
The push for cost reduction in modern data centers leads to increasing hardware utilization. Idle hardware is considered a cost problem, and mechanisms are created to minimize idle times.
However, running more processes to minimize idle hardware also implies that these processes compete for resources. This can lead to slower execution, longer runtimes, and even the abortion of processes (e.g., if no more memory can be allocated).
Virtualization layers, virtual machines (VMs), containers, and application servers are various mechanisms that are used to optimize hardware utilization. These allow “overprovisioning”: VMs can be defined for certain hardware, which in sum offer more resources than the hardware that is available.
Overprovisioning succeeds most of the time, where all VMs are not encountering peak demand conditions. However where hardware limits are reached and processes are slowed down or aborted, it becomes increasingly complicated to identify the root cause of the delays. This task is made more difficult by the presence of abstraction layers of VMs, containers, and application server instances (ASIs).